A storage array is used to store distributed data among a number of storage devices. In one embodiment, the storage array includes a number of disk drives. A set of disk drives constitutes the storage devices on which data is stored. A parity drive stores determined parity associated with the data stored on the set of disk drives. A "spare or stand-by" drive is utilized in reconstructing data if one of the data drives should fail.
A storage array typically receives and sends data to a host system upon request by the host system. Because the stored data is distributed data, which must be accurately reassembled when later read or used by the host system, it is important that the storage array be highly fault tolerant and include the capability of identifying the source(s) of error(s). In that regard, it is necessary to utilize operational procedures that monitor and assist in maintaining data integrity. These procedures typically include the use of various check bytes that are appended to the data at all levels of the data transfer operation. Specifically, in transferring data from the host system to the storage array, check bytes may be generated by the host and appended to each block of data received. Such check bytes are checked by the array storage system to determine the accuracy of the data block. Additionally, check bytes are appended to the data bytes during transfer between components of the storage array, such as to device controllers that are involved in reading/writing of data on the storage devices. Such check bytes are also checked during the reading operations associated with the storage array.
In addition to the various data integrity checking operations, it would be advantageous to indicate the identity of the operation in progress when a fault occurred and, more particularly, the identity of the data block that was being transferred at the time the fault occurred. If such information is known, appropriate corrective action can be taken, either close in time after the fault occurred or at the completion of system operation, to rectify any array storage system hardware or software faults.